This invention relates to the fields of mainframe communications and intranet or internet communications and more specifically to real time conversion of client data stream formats by a server.
Client/server is a type of computer system in which a client portion of the system retains responsibility for performing complex functions and a server portion of the system provides simple services for the client as requested. The client portions of the system transmit a request for a service and the server portion fulfills the request. The client and server may be implemented as special purpose hardware, but are usually implemented by programming one or more general purpose computers. Thus the client and server may be conceived of as either separate portions of hardware or as separate portions of software operating on a computer system, and both conceptions are used interchangeably herein. The client and server may be portions of the same node or may be portions of different nodes in a computer network. The programmer of the client application has to know the functions provided by the server and the format for the communication requesting a service from the server program and depending on the service, may need to know the contents and format for a response from the server program.
The client/server model is similar to traditional operating system services, but the services of a server are usually data base related rather than the device control related services traditionally provided by operating systems. The client/server model is different than the common data base transaction model, because the client keeps control of the transaction. The same program may be both a server for one client and a client of another server, depending on their relation with other programs. One type of service that may be provided by a server is translation or conversion of data streams between two clients requiring different kinds of data streams such as between a web browser and a mainframe application.
The term web browser is used for several related concepts which are differentiated by context. A xe2x80x9cweb browserxe2x80x9d may be a person using the intranet or internet or a program used to access the intranet or internet, or the media containing such a program, or a computer programmed to access the intranet or internet. Herein, web browser will be used to refer to both the software and the hardware programmed with the software unless otherwise indicated by the context of use. Also the term web browser will be used herein globally to include gophers, FTP, Telnet, intranet browsers, and other software and hardware for accessing pages or files through the intranet or internet or an intranet. Web browsers are connected to a network such as the intranet or internet and programmed to download a page of data from a web server where the page is selected by a user. The web browser interprets commands within the downloaded page to provide a formatted presentation of the data to the user. The web server may be a portion of a computer connected to the intranet or internet and programmed to serve pages to the intranet or internet or it may be a gateway server acting as a communication gateway between one or more page servers and the intranet or internet. Servers connecting between the intranet or internet and workstations and/or other servers are referred to herein as a workstation gateway server (WSG).
Data structures transmitted between programs are referred to herein as data streams. The data transmissions may be logically classified as a single synchronous stream or as an asynchronous data stream operating simultaneously in both directions (transmitting and receiving) or as a multitude of logical streams for different purposes.
Documents accessed by the intranet or internet commonly include text with embedded commands. That is, the commands are placed within the text at the point where they will operate. The text is formatted and presented to the user in accordance with the embedded commands. Such commands are commonly written in Hypertext Markup Language (HTML), but may include non-HTML commands that are supported by popular web browsers.
The specification for HTML 2.0 and a proposed HTML 3.0 are available from the World Wide Web Consortium (http:├├www.W3C.org├www). HTML is a simple text based language and HTML files usually include only ASCII text characters. Any white space (i.e. spaces, and control characters such as tab, line feed, and carriage return) embedded in the HTML document are ignored except to determine word boundaries, and the document is formatted only according to the HTML commands. HTML commands are commonly called tags and are used for formatting documents, for accessing and displaying graphics files, and for accessing other data through the intranet or internet.
The tags for accessing additional data are interpreted and executed by the web browser for example when the user hits a key or clicks a mouse button when the cursor is on highlighted text or graphic images (called click points) associated with such data. The tags consist of  less than , followed by text, followed by  greater than . For example, the  less than P greater than  tag starts a new paragraph and text between the  less than B greater than  tag and the  less than /B greater than  tag is presented in bold. Comments may be used to document HTML by enclosing text between  less than ! and  greater than  (i.e.  less than !comment greater than ). Web browsers do not normally present the tags to the user but most web browsers provide an option to allow viewing the source HTML.
Some popular web browsers such as Netscape (by Netscape Communications Corporation), Internet Explorer (a product by Microsoft), and Mosaic (from the National Center for Supercomputing Applications in Urbana-Champaign, Ill.) include extensions in the form of additional tags that are not specified in the standard for HTML 3.0 such as the  less than META . . .  greater than  tag to perform animation and the  less than ISINDEX PROMPT =xe2x80x9c . . . xe2x80x9d greater than  tag to prompt the user to enter a keyword to search for in a page. Also, such web browsers often have extensions to existing tags; for example, NETSCAPE has added attributes or verbs (additional commands within a tag) to the  less than HR greater than  tag (which inserts rule lines) to control the width, thickness, and alignment of horizontal rule lines. If a web browser encounters a tag or attributes within a tag (that is not a comment tag) with which it is not familiar, then usually the web browser ignores the tag or attribute; but sometimes, especially if a web page has not been tested with the particular web browser, the web browser could potentially lock-up or otherwise fail when it tries to interpret the unfamiliar tag or attribute.
Other popular programming languages support comments in the source code. MS-DOS (by Microsoft) ignores lines that begin with REM, C ignores text between /* and */, Pascal ignores text between {and}.
Usually when a web browser requests an HTML file from a page server, the page server reads the file from storage and transmits the HTML file as stored, without any interpretation. The web browser interprets the HTML in the file, requests any graphics files referred to in the HTML file, and presents the text and graphics to the user formatted according to the HTML tags. HTML file names usually end with xe2x80x9c.HTMLxe2x80x9d or xe2x80x9c.HTMxe2x80x9d.
Some web servers support an extension of HTML known as server side includes (SSI). When the file name ends in xe2x80x9c.SHTMLxe2x80x9d, a server that supports SSI scans the file for SSI commands and replaces the SSI commands with dynamic information such as time, date, last modified, or number of previous visitors into the file. SSI commands begin with  less than ! and end with  greater than  just like an HTML comment. Normally a server that supports SSI will remove the SSI tags before transmitting the page, but if SSI support is turned off or if the file is moved to a server that does not support SSI, the page server will transmit the SSI tags embedded in the page then the web browser will treat the SSI tags as comments.
In order to keep up with competition and to provide better products, software suppliers often introduce new versions of software with additional and improved features. When new versions of server programs are developed, the new version is usually compatible with client applications written for previous versions of the server so that existing client applications may be used with the new server with minimum problems. This is referred to in the art as backward compatibility.
The term backward compatibility is also used to describe improved client applications that are written to take advantage of features of the newest version of a server programs, but also operate at least with the previous version of a server. This is often done using system variables which control how the client application operates.
Those skilled in the art are directed to the following publications:
5494 Remote Control Unit Functions Reference Release 3.1, Order Number SC30-3533-04 from International Business Machines Corporation, describes the way that the 5494 uses SNA, SKLC, X.25, and X.21 protocols to communicate with the AS/400 and how it manages the attached workstations and converts network data streams into protocols for display stations and printers. This book is part of the 5484 online library available on the IBM Networking Systems Softcopy Collection Kit CD-ROM, SK2T-6012. Those skilled in the art can use this manual to dump and understand 5250 data streams such as those included herein in Appendix A.
AS/400 Data Description Specification V3R2, Order Number SC41-3712-01 from International Business Machines Corporation, provides detailed descriptions for coding the data description specification (DDS) for files that can be described externally. These files are physical, logical, display, print, and intersystem communication files. Those skilled in the art can use this manual to understand the use of the HTML keyword in a DDS file to create display specification panel files (DSPFs) that will embed HTML comments into a data stream.
AS/400 System Application Program Interface Reference V3R7, Order Number SC41-4801 from International Business Machines Corporation, describes the Application Program Interface (API) system calls. System API QsnQry5250 can be used to query a device to determine if it supports embedded HTML and the HTML keyword can be used. The program can determine if the 5250 datastream will be interpreted by a web browser or a standard 5250 device.
U.S. Pat. No. 5,530,852 describes a client including a browser communicating with a web server using the intranet or internet. Standard generalized markup language (SGML) data from a news source is converted into HTML by a parser/converter and served to the user.
The entire disclosure of the above citations are hereby incorporated herein.
A first portion of a computer system builds a first data stream including data and comments with commands (verbs) embedded within the comments. The first data stream is transmitted to a second portion of the system. The second portion of the system converts or transmutes the first data stream to a second data stream including the comments and converted data. In the second portion, the commands in the comments are interpreted and executed and the first data is converted depending on the commands embedded in the comments. The second data stream with the comments containing the commands are transmitted to a third portion of the system. Alternately the comments or at least the commands within the comments may be left out of the second data stream is no longer needed. The third portion of the system operates on the converted data but ignores the commands within the comments. This provided for backward compatibility of both the server and the client application.